package org.aeon.gamechatnest.service;

import com.baomidou.mybatisplus.extension.service.IService;
import org.aeon.gamechatnest.dto.PrivateLetterDto;
import org.aeon.gamechatnest.pojo.PrivateLetter;

import java.util.List;

/**
 * 私信对话服务（个人对个人）
 *
 * @author : Qik 2024/5/11 17:17
 */
public interface PrivateLetterService extends IService<PrivateLetter> {
    /**
     * 创建对话
     *
     * @param toUserId 接收用户id
     * @return true: 创建成功
     */
    boolean create(Long toUserId);

    /**
     * 隐藏对话
     *
     * @param privateId 私信对话id
     * @return true: 隐藏成功
     */
    boolean hide(Long privateId);

    /**
     * 根据私信id查找私信对话
     *
     * @param privateId 私信id
     * @return 私信对话实体
     */
    PrivateLetter findById(Long privateId);

    /**
     * 根据对话成员id查找私信对话
     *
     * @param userId 私信id
     * @return 私信对话实体
     */
    List<Long> findIdByUserId(Long userId);

    /**
     * 获取用户可见私信用户列表
     *
     * @param userId
     * @return
     */
    List<PrivateLetterDto> getPrivateMessageUsers(Long userId);

//    /**
//     *  todo 清空聊天记录 (是否双方都一起删除）
//     *
//     * @param privateId 私信对话id
//     * @return 清空记录条数
//     */
//    Long clear(Long privateId);
}
